<?php

function comandos_form($esquerda = null,$direita = null) {
	$t = '<table cellspacing="0" width="100%" class="action_form">
      <tr height="17">';
	if($esquerda) {
		$t .=
	  '<td align="left" width="150px">
        '.$esquerda.'
        </td>';
	}
	$t.= '<td>&nbsp;</td>';
	if($direita) {
		$t .= '<td align="right" width="150px">
          '.$direita.'
        </td>';
	}
	$t.= '</tr>
  </table>';
	echo $t;
}

function form_error($campo,$htmlAntes='',$htmlDepois='')
{
	$campo_for_sf = str_replace(array('[', ']'), array('{', '}'), $campo);
	$campo = str_replace(array('{', '}'), array('[', ']'), $campo);

	$request = sfContext::getInstance()->getRequest();
	$style = $request->hasError($campo_for_sf) ? '' : 'display:none;';
	$error = $request->getError($campo_for_sf);


	if($error)
	{
		if($request->getParameterHolder()->has('errosMostrados')) {
			$errosMostrados = $request->getParameterHolder()->get('errosMostrados');
		}
		else {
			$errosMostrados = array();
		}
		$errosMostrados[] = $campo_for_sf;

		$request->getParameterHolder()->set('errosMostrados',$errosMostrados);
		return $htmlAntes.content_tag('span', $error, array('class'=>'mensagem_erro_form')).$htmlDepois."\n";
	}
	return '';
}

function form_field_class($campo) {
	$request = sfContext::getInstance()->getRequest();
	return $request->hasError($campo) ? 'titulo_campo_texto_erro' : 'titulo_campo_texto';
}

function preenche_mensagem_flash() {
	$request = sfContext::getInstance()->getRequest();
	if($request->hasErrors()) {
		$errosMostrados = $request->getParameterHolder()->get('errosMostrados',array());
		$msg_erro = '';
		foreach($request->getErrors() as $campo=>$erro) {
			if(!in_array($campo,$errosMostrados)) {
				$msg_erro .=  "Erro não mostrado: ".$campo.' :: '.$erro.'.';
			}
		}	
		if($request->getParameterHolder()->has('errosMostrados')) {
			$msg_erro .= 'Por favor corrija os erros indicados.';
		}
		sfContext::getInstance()->getUser()->setFlash('alert', $msg_erro, false);
	}
}

function addMeta($meta)
{
	$response = sfContext::getInstance()->getResponse();
	$response->addMeta($meta);
}